//----------------------------------Include-------------------------------------
#include <stdint.h>
#include "mcu.h"
//------------------------------------------------------------------------------

//--------------------------------Public Func-----------------------------------
void mcu_init_do(void)
{
//periph clock
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
  
//Output
  GPIO_InitTypeDef    GPIO_InitS;
  GPIO_StructInit   (&GPIO_InitS);
  
  GPIO_InitS.GPIO_Mode  = GPIO_Mode_OUT;
  GPIO_InitS.GPIO_Speed = GPIO_Speed_2MHz;
  GPIO_InitS.GPIO_OType = GPIO_OType_PP;
  GPIO_InitS.GPIO_PuPd  = GPIO_PuPd_NOPULL;
  
  //PA4 -- out_pwr_en
  GPIO_InitS.GPIO_Pin = GPIO_Pin_4;   GPIO_Init(GPIOA, &GPIO_InitS);   GPIO_SetBits(GPIOA, GPIO_Pin_4);     //default ON
  
  //PB15--DTU_PWR_KEY   PA8--DTU_RST
  GPIO_InitS.GPIO_Pin = GPIO_Pin_15;  GPIO_Init(GPIOB, &GPIO_InitS);   GPIO_SetBits(GPIOB, GPIO_Pin_15);    //拉低PWRKEY至少500ms开机
//GPIO_InitS.GPIO_Pin = GPIO_Pin_8;   GPIO_Init(GPIOA, &GPIO_InitS);   GPIO_SetBits(GPIOA, GPIO_Pin_8);
}

//LED
void mcu_led_toggle(void)
{
  //GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_4) ? GPIO_ResetBits(GPIOA, GPIO_Pin_4) : GPIO_SetBits(GPIOA, GPIO_Pin_4);
}

//dtu power key
void mcu_dtu_pwr_key(uint32_t on)
{
  on ? GPIO_SetBits(GPIOB, GPIO_Pin_15)  :  GPIO_ResetBits(GPIOB, GPIO_Pin_15);
}

//output power
void mcu_out_pwr(uint32_t on)
{
  on ? GPIO_SetBits(GPIOA, GPIO_Pin_4)  :  GPIO_ResetBits(GPIOA, GPIO_Pin_4);
}

//output power status
uint32_t mcu_outpwr_status(void)
{
  uint32_t  r;
  GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_4) ? (r=1) : (r=0);
  return r;
}
//------------------------------------EOF---------------------------------------




